package com.java.common.utils.tool;

import org.springframework.util.ClassUtils;
import org.springframework.web.multipart.MultipartFile;

import java.util.UUID;

public class Tool {

    /**
     * 获取项目路径
     */
    public static String getProjectPath() {
        String path = ClassUtils.getDefaultClassLoader().getResource("").getPath();
        if(path.contains("!")) {
            path = path.substring(0, path.indexOf("!"));
            path = path.replace("file:", "");
            path = path.substring(0,path.lastIndexOf("/")+1);
        }else {
            path = path.substring(1);
            path = path.replace("classes/", "");
        }
        return path;
    }

    /**
     * 方法名：random
     * 详述：随机生成6位数的字符串
     * @return String
     */
    public static String random6(){
        int num = (int)((Math.random()*9+1)*100000);
        return String.valueOf(num);
    }

    /**
     * 方法名：getFileSuffix
     * 详述：获取文件后缀，包含.
     *
     * @param file
     * @return
     */
    public static String getFileSuffix(MultipartFile file) {
        String fileName = file.getOriginalFilename();
        if (!fileName.contains(".")) {
            return null;
        }
        String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
        return suffix;
    }

    /**
     * 方法名：genId
     * 详述：生成id
     *
     * @return
     */
    public static String genId() {
        return UUID.randomUUID().toString().replace("-", "");
    }

    /**
     * 方法名：isIMG
     * 详述：判断文件是不是图片
     *
     * @param suffix
     * @return
     */
    public static boolean isIMG(String suffix) {
        if (StringUtils.isNotEmpty(suffix)) {
            String[] arr = {".png", ".jpg", ".jpeg", ".gif", ".bmp"};
            for (String s : arr) {
                if (suffix.toLowerCase().equals(s)) {
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 方法名：isIMG
     * 详述：判断文件是不是图片
     *
     * @param file
     * @return
     */
    public static boolean isIMG(MultipartFile file) {
        String suffix = getFileSuffix(file);
        return isIMG(suffix);
    }

    /**
     * 方法名：isVIDEO
     * 详述：判断文件是不是视频
     *
     * @param suffix
     * @return
     */
    public static boolean isVIDEO(String suffix) {
        if (StringUtils.isNotEmpty(suffix)) {
            String[] arr = {".flv", ".swf", ".mkv", ".avi", ".rm", ".rmvb", ".mpeg", ".mpg", ".ogg", ".ogv", ".mov", ".wmv", ".mp4", ".webm", ".mp3", ".wav", ".mid"};
            for (String s : arr) {
                if (suffix.toLowerCase().equals(s)) {
                    return true;
                }
            }
        }
        return false;
    }

    /**
     * 方法名：isVIDEO
     * 详述：判断文件是不是视频
     *
     * @param file
     * @return
     */
    public static boolean isVIDEO(MultipartFile file) {
        String suffix = getFileSuffix(file);
        return isVIDEO(suffix);
    }
}
